package com.link_with_health.service;

import com.link_with_health.exception.BaseException;
import com.link_with_health.model.PrescriptionEntity;

import java.util.List;
public interface PrescriptionService {

    /**
     * 通过处方id获取处方信息
     * @param id 处方id
     * @return  处方信息
     * @throws BaseException 异常
     */
    PrescriptionEntity getPrescriptionById(Long id) throws BaseException;

    /**
     * 通过会诊信息获取处方信息
     * @param id 会诊信息
     * @return  处方信息
     * @throws BaseException 异常
     */
    List<PrescriptionEntity> getPrescriptionByInquiry(Long id) throws BaseException;

    /**
     * 通过患者信息获取会诊信息
     * @param id 患者id
     * @return  处方信息
     * @throws BaseException 异常
     */
    List<PrescriptionEntity> getPrescriptionByPatient(Long id) throws BaseException;

    /**
     * 通过医生id获取处方信息
     * @param id 医生id
     * @return  处方信息
     * @throws BaseException 异常
     */
    List<PrescriptionEntity> getPrescriptionByDoctor(Long id) throws BaseException;

    /**
     * 获取所有处方信息
     * @return  处方信息
     * @throws BaseException 异常
     */
    List<PrescriptionEntity> getAllPrescription() throws BaseException;

    /**
     * 增加处方信息
     * @param entity 处方信息
     * @return 改动数量
     * @throws BaseException 异常
     */
    int addPrescription(PrescriptionEntity entity) throws BaseException;

    /**
     * 改动处方信息
     * @param entity 处方信息
     * @return 改动数量
     * @throws BaseException 异常
     */
    int changePrescription(PrescriptionEntity entity) throws BaseException;

    /**
     * 删除处方信息
     * @param id 处方id
     * @return  改动数量
     * @throws BaseException 异常
     */
    int deletePrescription(Long id) throws BaseException;
}
